package org.test;

/**
 * @environment openjdk jdk11，used java -Djdk.internal.lambda.dumpProxyClasses、javac tools
 * @version v1.0.0
 * 创建时间：2022/8/9 15:47
 */
public class Enterlambda {
    public static void printString(String s, Print<String> print) {
        print.print(s);
    }
    public static void main(String[] args) {
        // sout 的表达式生成一个类，提供静态实例方法，类中包含实现接口的方法
        // 即本质上是类实例化，然后调用实现的接口方法
        printString("test", System.out::println);
        // javac Enterlambda.java
        // java -Djdk.internal.lambda.dumpProxyClasses ${sourcerootname}(包位置) + Enterlambda
        // 注意不要在当前目录java执行，会报错找不到主类
    }

}

@FunctionalInterface
interface Print<T>{
    void print(T x);
}
